#include <iostream>
#include <future>
#include <thread>
#include <memory>

int Add(int n1,int n2)
{
    std::cout<<"Add"<<std::endl;
    return n1+n2;
}

// promise  模板类 对(结果)的封装
int main()
{
    //1.先实例一个指定结果的promise对象
    std::promise<int> pro;

    //2.通过对象 获取关联的future对象
    std::future<int> res = pro.get_future();

    //3.在任意位置给promise设置数据 通过future获取设置的数据
    std::thread thr([&pro](){
        int sum = Add(11,22);
        pro.set_value(sum);
    });

    std::cout<<res.get()<<std::endl;

    thr.join();

    return 0;
}